Aufruf der Funktion in ST

Syntax
function-name();
 
function-name 
  (input_1:=x1,input_2:=x2,...,input_n:=xn,
  output_1=>y1,output_2=>y2,...,output_n=>yn);
Bedeutung

formaler →Aufruf der →Funktion (= formaler Funktionsaufruf) ohne oder mit Parameterliste
Der Aufruf einer von Ihnen deklarierten Anwenderfunktion (z.B. Simple2) und einer Systemfunktion (z.B. des Systembausteins  AND) erfolgt mit der gleichen Syntax.

Keine Prüfung von Rekursionen

Rekursionen bei →Funktionen und →Methoden werden von Neuron Power Engineer nicht verboten oder geprüft. Erstellen Sie trotzdem keine Selbstaufrufe und vermeiden Sie einen gegenseitigen Aufruf von 2 (oder mehr) Funktionen/Methoden in Ihrer Anwendung. 
Beachten Sie, dass Rekursionen von Funktionen/Methoden in Ihrer Anwendung unerwartete Ereignisse beim Ausführen der Anwendung verursachen können. So könnte die Anwendung in einer Endlosschleife ausgeführt werden und/oder das →Laufzeitsystem reagiert nicht mehr.

Die Parameterliste beim formalen →Aufruf kann aus folgenden Elementen bestehen:

  • →Zuweisungen auf →Eingangsvariablen (inkl. auf Eingang EN)
    Der Ausdruck auf der rechten Seite des Zuweisungsoperators ":=" in den Zuweisungen auf Eingangsvariablen darf eines jener Konstrukte sein, wie unter Zuweisung angeführt.

  • Zuweisungen auf →Ein-/Ausgangsvariablen
    Der Ausdruck auf der rechten Seite des Zuweisungsoperators ":=" in den Zuweisungen auf Ein-/Ausgangsvariablen darf nur eines jener Konstrukte sein, die auch auf der linken Seite des Zuweisungsoperators ":=" stehen könnten.

  • Zuweisungen von →Ausgangsvariablen (inkl. auf Ausgang ENO)
    Der Ausdruck auf der rechten Seite des Zuweisungsoperators "=>" in den Zuweisungen von Ausgangsvariablen darf eine deklarierte →Variable (z.B. result) des passenden →Datentyps sein.

Als Alternativen können Sie auch die folgenden Varianten beim Aufruf verwenden:

  • nicht-formaler Aufruf
    Die Parameterliste muss genau dieselbe Anzahl an Eingangsvariablen haben – in genau derselben Reihenfolge und mit passenden Datentypen, wie in der Deklaration angegeben, ausgenommen der Parameter zur Ausführungssteuerung EN und ENO
    Beispiel: Inst2 (10,20,T#3ms); – Dieser nicht-formale Aufruf ist gleichbedeutend mit diesem formalen Aufruf: Inst2 (EN := TRUE,IN1:=10,IN2 := 20,T1 := T#3ms, OUT => result);

  • unvollständige Parameterliste beim formalen Aufruf
    Sie können Eingangsvariablen und Ausgangsvariablen in der Parameterliste weglassen. Weggelassene Eingangsvariablen erhalten den Standard-→Initialisierungswert. Siehe die Beispiele unten.
    Spezialverhalten: Bei ausziehbaren Funktionen (wie z.B. dem AND-Baustein) werden Eingangsvariablen nach der am höchsten angegebenen Eingangsvariable nicht für die Funktionalität des Bausteins berücksichtigt. Diese Eingangsvariablen erhalten somit auch nicht den Standard-Initialisierungswert (siehe Beispiele unten).

Im FAQ-Artikel "Wann soll ich einen formalen Aufruf verwenden? Wann einen nicht-formalen Aufruf?" finden Sie Informationen darüber, wann der formale Aufruf im Vergleich zum nicht-formalen Aufruf zu verwenden ist.

Beispiel
Simple1();
Simple2(IN1:=10, IN2 :=20, T1 := T#3ms, OUT => result);  
AND(IN1:=TRUE, IN2:=FALSE);

Beispiele für unvollständige Parameterliste beim formalen Aufruf für eine Funktion:

Syntax

Bedeutung

FUNCTION fun1 : INT
    VAR_INPUT
        i1 : INT := 7;
        i2 : INT := 8;
    END_VAR
END_FUNCTION

Deklaration der Funktion fun1

Deklaration der Variablen i1 und i2 mit Initialisierungswerten

FUNCTION fun2 : INT
    fun2:=22;
END_FUNCTION

Deklaration der Funktion fun2 (mit dem Ergebniswert '22')

fun1(); 

Aufruf der Funktion fun1 ohne Parameterliste
fun1 erhält den Initialisierungswert 7 für i1 und den Initialisierungswert 8 für i2.

fun1(i2:=3); 

Aufruf der Funktion fun1 mit unvollständiger Parameterliste
fun1 . erhält den Initialisierungswert 7 für i1 und den zugewiesenen Wert 3 für i2.

fun1(i2:=fun2()); 

Aufruf der Funktion fun1 mit unvollständiger Parameterliste
fun1 . erhält den Initialisierungswert 7 für i1 und den Initialisierungswert 22 (von fun2) für i2.

fun1(i2:=fun2(EN:=FALSE)); 

Aufruf der Funktion fun1 mit unvollständiger Parameterliste
fun1 . erhält den Initialisierungswert 7 für i1 und den Ergebniswert 8 für i2.

Erklärung: Da EN := FALSE, wird fun2 nicht aufgerufen. Daher wird i2 mit dem Initialisierungswert versorgt.
Detaillierte Informationen über das Verhalten von Aufrufen mit einer Zuweisung auf den Eingang EN finden Sie unter "Zuweisungen in ST".

Beispiele für unvollständige Parameterliste beim formalen Aufruf für den ausziehbaren ANDBaustein:

Syntax

Bedeutung

AND(); 

Aufruf der Funktion AND ohne Parameterliste
Dieser Aufruf wird als fehlerhaft gekennzeichnet. Zuweisungen auf die ersten 2 Eingänge sind für den AND-Baustein erforderlich.

AND(IN2:=TRUE); 

Aufruf der Funktion AND mit unvollständiger Parameterliste
.Der Wert TRUE wird IN2 zugewiesen.
Die weggelassene Eingangsvariable vor IN2 (also IN1) erhält den Standard-Initialisierungswert FALSE.
Die weggelassenen Eingangsvariablen nach IN2 (also IN3 bis IN16) werden für die AND-Funktionalität nicht berücksichtigt.

AND(IN1:=TRUE,IN10:=TRUE); 

Aufruf der Funktion AND mit unvollständiger Parameterliste
.Der Wert TRUE wird IN2 und IN10 zugewiesen.
Die weggelassenen Eingangsvariablen vor IN10 (also IN2 bis IN9) erhalten den Standard-Initialisierungswert FALSE.
Die weggelassenen Eingangsvariablen nach IN10 (also IN11 bis IN16) werden für die AND-Funktionalität nicht berücksichtigt.